﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Microsoft.TeamFoundation.Server;

namespace PsTFS.Objects
{
    /// <summary>
    /// Permet de gérer les groupes utilisateur dans TFS, WSS, Report
    /// </summary>
    public class Groups
    {
        /// <summary>
        /// Type de groupe TFS, WSS, Report
        /// </summary>
        public TypeMember TypeMember { get; set; }
        /// <summary>
        /// Nom du compte
        /// </summary>
        public string AccountName { get; set; }
        /// <summary>
        /// Compte supprimé
        /// </summary>
        public bool Deleted { get; set; }
        /// <summary>
        /// Description
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// Nom du compte à afficher
        /// </summary>
        public string DisplayName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string DistinguishedName { get; set; }
        /// <summary>
        /// Domaine 
        /// </summary>
        public string Domain { get; set; }
        /// <summary>
        /// Adresse mail du groupe
        /// </summary>
        public string MailAddress { get; set; }
        /// <summary>
        /// Appartenance aux groupes
        /// </summary>
        public string[] MemberOf { get; set; }
        /// <summary>
        /// Type de sécuryté
        /// </summary>
        [DefaultValue(false)]
        public bool SecurityGroup { get; set; }
        /// <summary>
        /// Identifiant AD
        /// </summary>
        public string Sid { get; set; }
        /// <summary>
        /// Type d'application du groupe
        /// </summary>
        public ApplicationGroupSpecialType SpecialType { get; set; }
        /// <summary>
        /// Type de membre WindowsUser, WindowsGroup
        /// </summary>
        public IdentityType Type { get; set; }
        /// <summary>
        /// Liste des membres du groupe
        /// </summary>
        public List<Member> Members { get; set; }
    }
}
